<?php
	function replaceTag($sTag, $sValue, $sHtml)
	{
		$var = str_replace("#$sTag#",$sValue, $sHtml);

		return $var;
	}

	if(!function_exists('today'))
	{
	function today()
	{
		$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
		$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
		echo @$jour[date(w)]." ".@date(j)." ".@$mois[date(n)-1]." ".@date(Y);
	}
	}
	/*
	 * Cette fonction interdit certains caractères dans une chaine de caractère
	 * @see : utils/fonctions
	 */
	if(!function_exists('caracteres_interdits_2'))
	{
	function caracteres_interdits_2($message)
	{
		$message_temporaire = strtolower($message) ; // Permet de rendre le script insensible à la casse.
		$i=0;
		$carac_interdits[$i++] = '#' ; // caractère interdit
		$carac_interdits[$i++] = '\'' ; // caractère interdit
		$carac_interdits[$i++] = '"' ; // // caractère interdit
		$carac_interdits[$i++] = '}' ; // // caractère interdit
		$carac_interdits[$i++] = '{' ; // // caractère interdit
		$carac_interdits[$i++] = '=' ; // // caractère interdit
		$carac_interdits[$i++] = '-' ; // // caractère interdit
		$carac_interdits[$i++] = '+' ; // // caractère interdit
		$carac_interdits[$i++] = '/' ; // // caractère interdit
		$carac_interdits[$i++] = ']' ; // // caractère interdit
		$carac_interdits[$i++] = '[' ; // // caractère interdit
		$carac_interdits[$i++] = '°' ; // // caractère interdit
		$carac_interdits[$i++] = ')' ; // // caractère interdit
		$carac_interdits[$i++] = '(' ; // // caractère interdit
		$carac_interdits[$i++] = '@' ; // // caractère interdit
		$carac_interdits[$i++] = 'à' ; // // caractère interdit
		$carac_interdits[$i++] = 'ç' ; // // caractère interdit
		$carac_interdits[$i++] = '`' ; // // caractère interdit
		$carac_interdits[$i++] = '^' ; // // caractère interdit
		$carac_interdits[$i++] = '¨' ; // // caractère interdit
		$carac_interdits[$i++] = '£' ; // // caractère interdit
		$carac_interdits[$i++] = '$' ; // // caractère interdit
		$carac_interdits[$i++] = '¤' ; // // caractère interdit
		$carac_interdits[$i++] = '|' ; // // caractère interdit
		$carac_interdits[$i++] = '~' ; // // caractère interdit
		$carac_interdits[$i++] = '&' ; // // caractère interdit
		$carac_interdits[$i++] = 'µ' ; // // caractère interdit
		$carac_interdits[$i++] = '%' ; // // caractère interdit
		$carac_interdits[$i++] = 'ù' ; // // caractère interdit
		$carac_interdits[$i++] = ':' ; // // caractère interdit
		$carac_interdits[$i++] = '§' ; // // caractère interdit
		$carac_interdits[$i++] = '!' ; // // caractère interdit
		$carac_interdits[$i++] = ';' ; // // caractère interdit
		$carac_interdits[$i++] = '?' ; // // caractère interdit
		$carac_interdits[$i++] = '!' ; // // caractère interdit
		$carac_interdits[$i++] = ',' ; // // caractère interdit
		$carac_interdits[$i++] = ',' ; // // caractère interdit
		$carac_interdits[$i++] = '*' ; // // caractère interdit
		$carac_interdits[$i++] = '\\' ; // // caractère interdit
		$carac_interdits[$i++] = 'é' ; // // caractère interdit
		$carac_interdits[$i++] = 'è' ; // // caractère interdit
		$carac_interdits[$i++] = 'ê' ; // // caractère interdit
		$carac_interdits[$i++] = 'â' ; // // caractère interdit
		$carac_interdits[$i++] = 'ô' ; // // caractère interdit
		$carac_interdits[$i++] = 'î' ; // // caractère interdit
		$carac_interdits[$i++] = 'ï' ; // // caractère interdit
		$carac_interdits[$i++] = 'ö' ; // // caractère interdit
		$carac_interdits[$i++] = 'ä' ; // // caractère interdit
		$carac_interdits[$i++] = 'ü' ; // // caractère interdit

		$traitement = 1 ;
		$erreur = 0 ;

		foreach($carac_interdits as $traitement)
		{
			$position = strpos($message_temporaire, $traitement) ; // STRPOS renvoie TRUE si le caractère est trouvé

			if ($position !== FALSE)
			{ // Si la fonction ne renvoie pas FALSE c'est que le caractère est trouvé
				return 1; // Caractère interdit trouvé
			}
		} // Fin de la boucle

		if($erreur == 0)
		{
			return 0; // Caractère interdit non trouvé
		}
	}
	} // Fin de la fonction

	if(!function_exists('caracteres_interdits_PN'))
	{
	function caracteres_interdits_PN($message)
	{
		$message_temporaire = strtolower($message) ; // Permet de rendre le script insensible à la casse.
		$i=0;
		$carac_interdits[$i++] = '#' ; // caractère interdit
		$carac_interdits[$i++] = '\'' ; // caractère interdit
		$carac_interdits[$i++] = '"' ; // // caractère interdit
		$carac_interdits[$i++] = '}' ; // // caractère interdit
		$carac_interdits[$i++] = '{' ; // // caractère interdit
		$carac_interdits[$i++] = '=' ; // // caractère interdit
		$carac_interdits[$i++] = '+' ; // // caractère interdit
		$carac_interdits[$i++] = '/' ; // // caractère interdit
		$carac_interdits[$i++] = ']' ; // // caractère interdit
		$carac_interdits[$i++] = '[' ; // // caractère interdit
		$carac_interdits[$i++] = '°' ; // // caractère interdit
		$carac_interdits[$i++] = ')' ; // // caractère interdit
		$carac_interdits[$i++] = '(' ; // // caractère interdit
		$carac_interdits[$i++] = '@' ; // // caractère interdit
		$carac_interdits[$i++] = '`' ; // // caractère interdit
		$carac_interdits[$i++] = '^' ; // // caractère interdit
		$carac_interdits[$i++] = '¨' ; // // caractère interdit
		$carac_interdits[$i++] = '£' ; // // caractère interdit
		$carac_interdits[$i++] = '$' ; // // caractère interdit
		$carac_interdits[$i++] = '¤' ; // // caractère interdit
		$carac_interdits[$i++] = '|' ; // // caractère interdit
		$carac_interdits[$i++] = '~' ; // // caractère interdit
		$carac_interdits[$i++] = '&' ; // // caractère interdit
		$carac_interdits[$i++] = 'µ' ; // // caractère interdit
		$carac_interdits[$i++] = '%' ; // // caractère interdit
		$carac_interdits[$i++] = ':' ; // // caractère interdit
		$carac_interdits[$i++] = '§' ; // // caractère interdit
		$carac_interdits[$i++] = '!' ; // // caractère interdit
		$carac_interdits[$i++] = ';' ; // // caractère interdit
		$carac_interdits[$i++] = '?' ; // // caractère interdit
		$carac_interdits[$i++] = '!' ; // // caractère interdit
		$carac_interdits[$i++] = ',' ; // // caractère interdit
		$carac_interdits[$i++] = ',' ; // // caractère interdit
		$carac_interdits[$i++] = '*' ; // // caractère interdit
		$carac_interdits[$i++] = '\\' ; // // caractère interdit


		$traitement = 1 ;
		$erreur = 0 ;

		foreach($carac_interdits as $traitement)
		{
			$position = strpos($message_temporaire, $traitement) ; // STRPOS renvoie TRUE si le caractère est trouvé

			if ($position !== FALSE)
			{ // Si la fonction ne renvoie pas FALSE c'est que le caractère est trouvé
				return 1; // Caractère interdit trouvé
			}
		} // Fin de la boucle

		if($erreur == 0)
		{
			return 0; // Caractère interdit non trouvé
		}
	}
	} // Fin de la fonction

	/*
	 * Cette fonction interdit certains caractères dans un email
	 * @see : utils/fonctions
	 */
	if(!function_exists('caracteres_interdits'))
	{
	function caracteres_interdits($message)
	{
	$message_temporaire = strtolower($message) ; // Permet de rendre le script insensible à la casse.
	$carac_interdits[1] = '\'' ; // caractère interdit
	$carac_interdits[2] = '"' ; //  caractère interdit
	$traitement = 1 ;
	$erreur = 0 ;

	foreach($carac_interdits as $traitement)
	{
		$position = strpos($message_temporaire, $traitement) ; // STRPOS renvoie TRUE si le caractère est trouvé
		if ($position !== FALSE)
		{ // Si la fonction ne renvoie pas FALSE c'est que le caractère est trouvé
			return 1; // Caractére interdit trouvé
		}
	} // Fin de la boucle

	if($erreur == 0)
	{
		return 0; // Caractére interdit non trouvé
	}
	} // Fin de la fonction
	}

	/*
	 * Validité d'une date : verification du format dd-mm-yyyy
	 * * @see : utils/fonctions
	 */
	if(!function_exists('datevalider'))
	{
	function datevalider($var)
	{
		if(isset($var) && $var!="" && $var!=NULL)
		{
			/* $var = str_replace('/','-',$var); */
			$var = explode('-', str_replace(' ','',$var));
			if(strlen($var[0])<=2)
			{
				if(strlen($var[1])<=2)
				{
					if(strlen($var[2])==4)
						return true;
					else
						return false;
				}
				else
					return false;
			}
			else
				return false;
		}
		else
			return false;
	}
	}
	/*
	 * Validité d'une date: vérification de la cohérence de la date dans le calendrier
	 * * @see : utils/fonctions
	 */
	if(!function_exists('datevalide'))
	{
	function datevalide($var)
	{
		if(isset($var) && $var!="" && $var!=NULL)
		{
			$var1 = str_replace('/','-',$var);
			$var = explode('-', str_replace(' ','',$var1));
				if(is_numeric(@$var[0]) && is_numeric(@$var[1]) && is_numeric(@$var[2]) )
				{
						$date1	=	checkdate(zeroDevant($var[1]),zeroDevant($var[0]),$var[2]);
						$tail	=	tailleDateAnnee($var[2]);
						$v_date	=	comprisEntre($var[2]);

						if(!$date1 || !$tail || !$v_date)
						{
							return false;
						}
						else
							return true;
				}
				else
					return false;
		}
		else
			return false;
	}
	}

	if(!function_exists('zeroDevant'))
	{
	function zeroDevant($val)
	{
		if(strlen($val)==1)
			$val="0".$val;
		return $val;
	}
	}
	if(!function_exists('tailleDateAnnee'))
	{
	function tailleDateAnnee($val)
	{
		if(isset($val) && $val!=NULL)
		{
			if(strlen($val)==4 )
					return true;
			else
				return false;
		}
	}
	}

	// Compris entre 1900 et 2099
	if(!function_exists('comprisEntre'))
	{
	Function comprisEntre($val)
	{
		if(isset($val) && $val!=NULL)
		{
			$val=intval($val);
			if($val>=intval(1900))
			{
				if($val<=intval(2099))
					return true;
				else
					return false;
			}
			else
				return false;

		}
	}
	}
	// convertir une date FR en EN
	if(!function_exists('conversionDates'))
	{
	function  conversionDates($sDateFR){
     	$sAnnee = substr($sDateFR,6);
     	$sMois = substr($sDateFR,3,2);
     	$sJour = substr($sDateFR,0,2);
     	$sDateEN = $sAnnee.'-'.$sMois.'-'.$sJour;
     	return $sDateEN;
     }
	}
	// changer le format d'une date, anglais en français
	function dateFr_a_en($date)
	{
		if ($date != '')
		{
			list($year, $month, $day) = explode("-", $date); // créer liste sans les '-'
			return $day.'-'.$month.'-'.$year;
		}
		else
		{
			return '';
		}
	}
	// différence en jours entre deux dates au format anglais
	function diffDate_en_jours($date, $date2)
	{
		if (($date != '') and ($date2 != ''))
		{
			list($aaaa, $mm, $jj) = explode("-", $date);
			list($aaaa2, $mm2, $jj2) = explode("-", $date2);

			$userDate = mktime(0,0,0,$mm,$jj,$aaaa);
			$userDate2 = mktime(0,0,0,$mm2,$jj2,$aaaa2);
			return abs(intval( ($userDate - $userDate2) / (86400) ));
		}
		else
		{
			return '';
		}
	}
	//	différence en années entre deux dates au format anglais
	function diffDate_en_mois($date, $date2)
	{
			$nbJrs = diffDate_en_jours($date,$date2);
			$nbAnnees = diffDate_en_annees($date, $date2);

				//$Annee = floor($nbJrs/365); // Division pour connaitre le nombre d'années entières

				$resteApresAnnee = $nbJrs %365; // Une fois le nombre d'année connu, on récupère le reste de jours
				$Mois = floor($resteApresAnnee/31); // Division pour connaitre le nombre de mois entiers, non compris dans les années

				return (12*$nbAnnees + $Mois);

	/*

					$Annee = floor($n/jourAnnee); // Division pour connaitre le nombre d'années entières

					$resteApresAnnee = $n %jourAnnee; // Une fois le nombre d'année connu, on récupère le reste de jours

					$Mois = floor($resteApresAnnee/jourMois); // Division pour connaitre le nombre de mois entiers

					$resteApresMois = $n % jourMois; // Une fois le nombre de mois connus, on récupère le reste de jours

					echo "$n jours correspond à  : " . $Annee . " an(s),  " . $Mois . " mois et " . $resteApresMois . " jour(s)";

*/

	}
	//	différence en années entre deux dates au format anglais
	function diffDate_en_annees($date, $date2)
	{
			$nbJrs = diffDate_en_jours($date,$date2);
			//$an = 365;
				 return floor($nbJrs/365);//$an);

	}
	// verifier si la date de debut est anterieure a la date de fin
	// vérifie plutot si la date de fin est antéreieure à la date de début

     if(!function_exists('controle_dates'))
	{
	function controle_dates($debut,$fin){
		$bTest;
		$annee_debut = substr($debut,6);
		$annee_fin = substr($fin,6);
		if (strcmp($annee_debut,$annee_fin)>0)
		{
			$bTest=true;
		}elseif (strcmp($annee_debut,$annee_fin)==0)
		{
				$mois_debut = substr($debut,3,2);
				$mois_fin = substr($fin,3,2);
				if (strcmp($mois_debut,$mois_fin)>0)
				{
					$bTest=true;
				}elseif (strcmp($mois_debut,$mois_fin)==0)
				{
					$jour_debut = substr($debut,0,2);
					$jour_fin = substr($fin,0,2);
					if (strcmp($jour_debut,$jour_fin)>0)
					{
					$bTest=true;
					}
				}
		}

		return $bTest;
	}

	}

	 if(!function_exists('checkEmail'))
	{
	function checkEmail($xmail)
	{
		$pattern = "/^[a-zA-Z0-9\.\-\_]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9\-]+/";
		return preg_match( $pattern, $xmail );
	}
	}

	/**
 * Fonction retournant un timestamp d'un String selon un format donné.
 *	@param	$sDate		String	Date à formater
 *	@param	$sFormat	String	Format de la date à formater
 *	@return	int					Timestamp de la date
 **/
function str_to_time($sDate, $sFormat)
{
	$tmp_decalage = 0;
	$tmp_hour = $tmp_minute = $tmp_second = $tmp_month = $tmp_day = $tmp_year = 0;
	for ($i=0; $i<strlen($sFormat); $i++)
	{
		switch ($sFormat[$i])
		{
			case 'Y':
				{
					$tmp_year = ((int)(substr($sDate, $tmp_decalage, 4)));
					$tmp_decalage += 4;
					break;
				}
			case 'm':
				{
					$tmp_month = ((int)(substr($sDate, $tmp_decalage, 2)));
					$tmp_decalage += 2;
					break;
				}
			case 'd':
				{
					$tmp_day = ((int)(substr($sDate, $tmp_decalage, 2)));
					$tmp_decalage += 2;
					break;
				}
			case 'H':
				{
					$tmp_hour = ((int)(substr($sDate, $tmp_decalage, 2)));
					$tmp_decalage += 2;
					break;
				}
			case 'i':
				{
					$tmp_minute = ((int)(substr($sDate, $tmp_decalage, 2)));
					$tmp_decalage += 2;
					break;
				}
			case 's':
				{
					$tmp_second = ((int)(substr($sDate, $tmp_decalage, 2)));
					$tmp_decalage += 2;
					break;
				}
			default:
				{
					$tmp_decalage += 1;
					break;
				}
		}
	}
	return mktime($tmp_hour, $tmp_minute, $tmp_second, $tmp_month, $tmp_day, $tmp_year);
	}

	// Pour vérifier les valeurs numériques
	if(!function_exists('verifNumeric'))
	{
	function verifNumeric($val)
	{
		if(is_numeric($val))
			return true;
		else
			return false;
	}
	}

	// Retourn la valeur que l'utilisateur avait saisi dans un champ de type texte
	if(!function_exists('remind_text'))
	{
	function remind_text($val)
	{
	  if(isset($_POST["$val"]))
	   return $_POST["$val"]; //str_replace(' ','',$_POST["$val"]);
	  elseif(isset($_GET["$val"]))
	   return $_POST["$val"]; //str_replace(' ','',$_GET["$val"]);
	  else
	   return NULL;
	}
	}

	// Retourn la valeur que l'utilisateur avait saisi dans un champ de type select
	if(!function_exists('remind_select'))
	{
	function remind_select($champ, $value)
	{
		if(isset($_POST[$champ]) && $_POST[$champ]==$value)
			return 'selected="selected"';
	}
	}

	if(!function_exists('remind_select1'))
	{
	function remind_select1($champ, $value)
	{
		if(isset($_SESSION[$champ]) && $_SESSION[$champ]==$value)
			return 'selected="selected"';
	}
	}

	if(!function_exists('remind_select2'))
	{
	function remind_select2($champ, $value)
	{
		if(isset($champ) && $champ==$value)
			return 'selected="selected"';
	}
	}

	if(!function_exists('isDate1AfterDate2'))
	{
	function isDate1AfterDate2($sDate1, $sDate2)
	{
        //explode pour mettre la date 2 en format numerique: 12-05-2006  -> 12052006
	    $s2 = explode("-", $sDate2);

        //explode pour mettre la date 1 en format numerique: 31-05-2009  -> 31052009
	    $s1 = explode("-", $sDate1);

        // concaténation pour inverser l'ordre: 12052006 -> 20060512
    	$date2 = $s2[2].$s2[1].$s2[0];
	        // concaténation pour inverser l'ordre: 31052009 -> 20090531
    	$date1 = $s1[2].$s1[1].$s1[0];

    	// Ensuite il suffit de comparer les deux valeurs
   		if ($date1>$date2)
    	{
	    	return true;
	    }
	    else
	    {
	    	return false;
	    }
	}
	}

	if(!function_exists('ajoutDate'))
	{
	/**
	 * ajoute des jours/mois/années à une date
	 *
	 * @param date au format dd-mm-yyyy $date
	 * @param int $iNbMmois nbre de mois
	 * @param int $iNbJour nbre de jour
	 * @param int $iNbAn nbre de années
	 * @return date au format dd-mm-yyyy
	 */
	function ajoutDate($date,$iNbMmois, $iNbJour,$iNbAn)
	{
		$date = explode('-',$date);
		return $datefin = date("d-m-Y", mktime(0, 0, 0, $date[1]+($iNbMmois), $date[0] +($iNbJour), $date[2]+($iNbAn)));
	}
	}

/**
 * Renvoie le text element du dictionnaire
 *
 * @param objet $microassur ressouce de connection à une bdd
 * @param string $_zCode code de l'élément
 * @return string nom de l element du dico
 * @author Toky RABESON <t.rabeson@gmail.com>
 */
function getElementDico($microassur, $_zCodeTable, $_zCodeElement){
	//medoune: REQUETE SUR LA TABLE DCTIONNAIE
	$reqdico = "Select DISTINCT(Identifiant_table) from dictionnaire where Code_table='" . $_zCodeTable . "'";
	$rs_idtab_dico = mysql_query($reqdico, $microassur) or die(mysql_error());
	$row_idtab = mysql_fetch_assoc($rs_idtab_dico);

	//medoune: REQUETE SUR LA TABLE ELEMENTDICO
	$reqelmtdico  = " Select DISTINCT(Nom_element) from elementdico where" ;
	$reqelmtdico .= " Identifiant_table='" . $row_idtab['Identifiant_table'] . "'" ;
	$reqelmtdico .= " and Code_element='" . $_zCodeElement . "'" ;
	$rs_elmtdico = mysql_query($reqelmtdico, $microassur) or die(mysql_error());
	$row_elmtdico = mysql_fetch_assoc($rs_elmtdico);
	return $row_elmtdico['Nom_element'];
}

/**
 *
 * @param string $_zLibelle nome de la var (ex $_GET['nom_var'])
 * @param mixed $_oDefault valeur par defaut
 */
function getHttpVar($_zLibelle, $_oDefault = NULL)
{
    $oRetun = (array_key_exists($_zLibelle, $_GET)) ? $_GET[$_zLibelle] : $_oDefault ;
    $oRetun = (!$oRetun && array_key_exists($_zLibelle, $_POST)) ? $_POST[$_zLibelle] : $oRetun ;
    
    return $oRetun ;
    
}

/**
 * Prepare la variable pour une insertion dans Mysql
 *
 * @param string $theValue la variable
 * @param string $theType le type de la variable (text|log|int|double|date|defined)
 * @param type $theDefinedValue la valeur par défaut ???
 * @param type $theNotDefinedValue aucune idée
 * @return mixed  
 */
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

/**
 * Prépare une message lors d'un évènement
 *
 * @param string $val texte du message
 * @param string $val2 class du message (généralement true ou false)
 * @return string 
 */
function colorer ($val,$val2)
{
    $cls = '<div class='.$val2.'>'.strToNoAccent($val).'</div>';
    return $cls;
}

/**
 * Nettoye la variable de tous caractères spéciaux
 * 
 * @param string $var
 * @return string 
 */
function strToNoAccent($var)
{
        $var = str_replace(
         array(
          "à", "â", "ä", "á", "ã", "å",
          "î", "ï", "ì", "í",
          "ô", "ö", "ò", "ó", "õ", "ø",
          "ù", "û", "ü", "ú",
          "é", "è", "ê", "ë",
          "ç", "ÿ", "ñ","'",
          "‘","'",
         ),
         array(
          '&agrave;', '&#194;', '	&#196;', '&#193;', '&#195;', '	&#197;',
          '	&#206;', '&#207;', '&#204;', '&#205;',
          '&#212;', '&#214;', '&#210;', '&#211;', '&#213;', '&#216;',
          '&#217;', '&#219;', '&#220;', '&#218;',
          '&eacute;', '&egrave;', '&#234;', '&#235;',
          '&#199;', '&#255;', '&#241;','&#8217;',
          '&#8217;','&#8217;',
         ),$var);
    return $var;
}

/**
 * Verifie si une variable ne contient pas de caractère interdit
 *
 * @param string $val la clé de la variable
 * @return type 
 */
function verifLibelle1($val)
{
    if(isset($_POST["$val"])&& ($_POST["$val"]!=NULL))
    {
        $test=$_POST["$val"];
        //$pattern = "/^[a-zA-Z0-9]/";
        $pattern = "/^[a-zA-Z0-9._-]+/";
        if(preg_match($pattern, $test )){
            $result = caracteres_interdits_2($test);
            if($result==0)
                return TRUE;
            else
                return FALSE;
        }
        else
            return FALSE;

    }
    else 
        return FALSE;
}	
	
/**
 * Cette fonction retourne l'Identifiant_contrat du contrat dont le Numero_contrat est passé en paramètre
 *
 * @param type $database_microassur
 * @param type $microassur
 * @param int $Numero_contrat
 * @return type 
 */
function IdContrat($database_microassur, $microassur, $Numero_contrat){

	$query_rs = "SELECT Identifiant_contrat FROM contrat WHERE Numero_contrat = '$Numero_contrat' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Identifiant_contrat'];
}


/**
 * un alias de getHttpVar
 * @param mixed $val
 * @return type 
 */	
function retourValForm($val)
{
    return getHttpVar($val, NULL) ;
}

// Cette fonction retourne l'Etat_contrat du contrat dont le Numero_contrat est passé en paramètre
function EtatContrat($database_microassur, $microassur, $Numero_contrat){

	$query_rs = "SELECT Etat_contrat FROM contrat WHERE Numero_contrat = '$Numero_contrat' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Etat_contrat'];
}

// Retourn Type_assure du Role dont le Identifiant_contrat et le Identifiant_personne sont données en paramètres
function typeAssureRole($database_microassur, $microassur, $identifiant_personne, $identifiant_contrat){
	$query_rs = "SELECT Type_assure FROM role WHERE Identifiant_personne = $identifiant_personne AND Identifiant_contrat = $identifiant_contrat AND Etat_role = 'A' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Type_assure'];
}

// Retourn Identifiant_offre du Role dont le Identifiant_contrat et le Identifiant_personne sont données en paramètres
function idOffreRole($database_microassur, $microassur, $identifiant_personne, $identifiant_contrat){
	$query_rs = "SELECT Identifiant_offre FROM role WHERE Identifiant_personne = $identifiant_personne AND Identifiant_contrat = $identifiant_contrat AND Etat_role = 'A' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Identifiant_offre'];
}

// Cette fonction retourne l'Identifiant_cotisation dans la table COTISATION dont l'Identifiant_contrat est passé en paramètre
function IdCotisation($database_microassur, $microassur, $Identifiant_contrat){

	$query_rs = "SELECT Identifiant_cotisation FROM cotisation WHERE Identifiant_contrat = '$Identifiant_contrat' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Identifiant_cotisation'];
}

// Le montant de cotisation restant due dans la table Echeancier. Cette donnée correspond à la somme des échéances dont l’état de l’échéance est différent de ‘R’ (réglée) pour l’année de cotisation la plus récente.
function cotisationRestantDue($database_microassur, $microassur, $Identifiant_cotisation, $dateEffetContrat){

	$query_rs = "select SUM(Montant_echeance) as Montant_due from echeancier WHERE Identifiant_cotisation = $Identifiant_cotisation AND Etat_echeance <> 'R' AND TO_DAYS(Date_debut_echeance)-TO_DAYS('$dateEffetContrat')>=0 ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Montant_due'];
}

// Le montant des impayés dans la table Echeancier. Cette donnée correspond à la somme des échéances dont l’état de l’échéance est à ‘I’ (impayée) pour l’année de cotisation la plus récente.
// Avec la prise en compte de l'année la plus récente dans la requette
function cotisationDontImpayes($database_microassur, $microassur, $Identifiant_cotisation, $dateEffetContrat){

	$query_rs = "select SUM(Montant_echeance) as Montant_impaye from echeancier WHERE Identifiant_cotisation = $Identifiant_cotisation AND Etat_echeance = 'I' AND TO_DAYS(Date_debut_echeance)-TO_DAYS('$dateEffetContrat')>=0 ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Montant_impaye'];
}

// Cette fonction retourne la Date_effet_contrat du Contrat dont l'Identifiant_contrat est passé en paramètre
// Avec la prise en compte de l'année la plus récente dans la requette 
function dateEffetContrat($database_microassur, $microassur, $Identifiant_contrat){

	$query_rs = "SELECT Date_effet_contrat FROM contrat WHERE Identifiant_contrat = '$Identifiant_contrat' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Date_effet_contrat'];
}

// Cette fonction retourne la Date_echeance_contrat du Contrat dont l'Identifiant_contrat est passé en paramètre
function dateEcheanceContrat($database_microassur, $microassur, $Identifiant_contrat){

	$query_rs = "SELECT Date_echeance_contrat FROM contrat WHERE Identifiant_contrat = '$Identifiant_contrat' ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Date_echeance_contrat'];
}

// Cette fonction retourne le Motif_evenement du dernier Evenement dont l'Identifiant_contrat est passé en paramètre
function getMotifEvenement($database_microassur, $microassur, $Identifiant_contrat){

	$query_rs = "SELECT Motif_evenement FROM evenement WHERE Identifiant_contrat = '$Identifiant_contrat' ORDER BY Identifiant_evenement DESC LIMIT 1";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Motif_evenement'];
}

// Reçoit une date au format aaaa-mm-dd et retourne la date reçue + 1 an – 1 jour
function date_plus_1an_moins_1jour($date) 
{
	if(isset($date))
	{
		$date = str_replace('/','-',$date);
		$date = explode('-', $date);
		$date2 = strftime("%Y-%m-%d", mktime(0,0,0,intval($date[1]),intval($date[2]),intval($date[0]))+364*24*3600);
		return $date2;
	}
}

/**************** Mardi 17 août 2010*********************/

// Fournit le montant a rembourser (première échéance réglée)
function montantARembourser($database_microassur, $microassur, $Identifiant_cotisation){
	$query_rs = "SELECT Montant_echeance FROM echeancier WHERE Identifiant_cotisation = '$Identifiant_cotisation' AND Etat_echeance = 'R' ORDER BY Identifiant_echeance ASC LIMIT 1; ";
	$rs = mysql_query($query_rs, $microassur) or die(mysql_error());
	$row_rs = mysql_fetch_assoc($rs);
	mysql_free_result($rs);
	return $row_rs['Montant_echeance'];
}

/**************** Mercredi 18 août 2010*********************/

function verifLibelle($val)
{
    return (isset($_POST["$val"]) && ($_POST["$val"]!=NULL)) ;
}

	
/*
 * Fonction qui calcule la différence entre deux dates
 */
function getDiffDate($dateeffet,$datereglement) 
{
	$tempdate = explode("-",$dateeffet);
    $a1 = $tempdate[2];
    $m1 = $tempdate[1];
    $d1 = $tempdate[0];
    $date1 = @@mktime(0,0,0,$m1,$d1,$a1);

    $tempdate2 = explode("-",$datereglement);
    $a2 = $tempdate2[2];
    $m2 = $tempdate2[1];
    $d2 = $tempdate2[0];
    $date2 = @@mktime(0,0,0,$m2,$d2,$a2);

    $diff_date = $date1-$date2;
    if(($diff_date>0)||($diff_date==0)){
        $val="true";
    }else{
        $val="false";
    }

    return $val;
}

/**
 * Créer l'attribut selected
 *
 * @param type $_zKeyValue
 * @param type $_oOptionValue
 * @return string 
 */
function getSelectedAttr($_zKeyValue, $_oOptionValue)
{
    if (array_key_exists($_zKeyValue, $_POST) && $_POST[$_zKeyValue] == $_oOptionValue)
    {
        $zSelected = 'selected="selected"' ;
    }
    elseif(array_key_exists($_zKeyValue, $_GET) && $_GET[$_zKeyValue] == $_oOptionValue)
    {
        $zSelected = 'selected="selected"' ;
    }
    elseif(array_key_exists($_zKeyValue, $_SESSION) && $_SESSION[$_zKeyValue] == $_oOptionValue)
    {
        $zSelected = 'selected="selected"' ;
    }
    else
    {
        $zSelected = '' ;
    }
    return $zSelected ;
}

function dateEN2FR($date)
{
    if(isset($date) && $date!=NULL)
    {
        $date = str_replace('/','-',$date);
        $date = explode('-', $date);
            if(is_numeric(@$date[0]) && is_numeric(@$date[1]) && is_numeric(@$date[2]))
            {
                $date02=zeroDevant($date[2]);
                $date01=zeroDevant($date[1]);
                $date00=zeroDevant($date[0]);
                $dateFr = $date02.'-'.$date01.'-'.$date00;

                    return $dateFr;
            }
            else
                return "99-99-9999";
    }
    else
    return NULL;
}
	
?>